package com.itheima.health.service;

import com.itheima.health.pojo.Member;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

/**
 * 会员Service
 */
public interface MemberService {
    /**
     * 添加会员
     * 不存在则创建并返回，存在则更新非空字段并返回
     * @param member
     * @return
     */
    Member createOrUpdate(Member member);
    /**
     * 根据ID查询
     * @param id
     * @return
     */
    Member findById(Integer id);

    /**
     * 根据月份统计用户数量
     * @param months
     * @return
     */
    List<Integer> countByMonth(List<String> months);

    /*
     *  查询会员性别占比，返回数据格式
     *  0: {name: "女", value: 0.7143}
     *  1: {name: "男", value: 0.2857}
    ***/
    List<Map<String,Double>>countByMember();

    /**
     * 查询会员年龄段，返回数据格式
    *   0: {name: "0-18", value: 5}
    *   1: {name: "18-30", value: 6}
    *   2: {name: "30-45", value: 5}
    *   3: {name: "45以上", value: 5}
    * */
    List<Map<String,Object>> countByAge() throws ParseException;
}
